/**
 * 一天执行一次的定时器保存数据
 */
 'use strict';

 module.exports = app => {
   return {
     schedule: {
       cron: '0 0 0 * * ?', // 每天触发一次
      //  interval: '1m', // 10 分钟间隔
       type: 'worker', // worker 类型：每台机器上只有一个 worker 会执行这个定时任务
       immediate: false, // 应用启动并 ready 后立刻执行一次这个定时任务
       disable: false,
     },
     async task(ctx) {
       const result = await ctx.model.Olt.find()
       for(var i =0;i<result.length;i++){
            const oltState = await ctx.service.olt.getOltStatus({OltId:result[i]._id})
            if(result[i].oltType == "ZTE" && oltState.flag == true){
                console.log('ZTE')
                console.time('haha1')
                await ctx.service.olt.getSystemName({OltId:result[i]._id})
                await ctx.service.olt.getOltVersion({OltId:result[i]._id})
                await ctx.service.olt.getOltInformation({OltId:result[i]._id})
                ctx.service.olt.getOltTemperature({OltId:result[i]._id})
                ctx.service.olt.getCardInformation({OltId:result[i]._id}),
                ctx.service.olt.getPonPortsAndUplinkPorts({OltId:result[i]._id}),
                ctx.service.olt.getOltONUProfile({OltId:result[i]._id}),
                ctx.service.olt.getOltDBAProfile({OltId:result[i]._id}),
                ctx.service.olt.getOltVlan({OltId:result[i]._id}),
                ctx.service.olt.getOltSpeedProfile({OltId:result[i]._id}),
                ctx.service.olt.getRegisteredONUList({OltId:result[i]._id,tid:result[i].tid}),
                ctx.service.olt.getUnregisteredONUList({OltId:result[i]._id})
                console.timeEnd('haha1')
            }else if(result[i].oltType == "HUAWEI" && oltState.flag == true){
                console.log('HUAWEI')
                console.time('haha2')
                await ctx.service.olt.getSystemName({OltId:result[i]._id})
                await ctx.service.olt.getOltVersion({OltId:result[i]._id})
                await ctx.service.olt.getOltInformation({OltId:result[i]._id})
                await ctx.service.olt.getOltTemperature({OltId:result[i]._id})
                ctx.service.olt.getCardInformation({OltId:result[i]._id})
                ctx.service.olt.getPonPortsAndUplinkPorts({OltId:result[i]._id})
                ctx.service.olt.getOltONUProfile({OltId:result[i]._id})
                ctx.service.olt.getOltDBAProfile({OltId:result[i]._id})
                ctx.service.olt.getOltLineProfile({OltId:result[i]._id})
                ctx.service.olt.getOltVlan({OltId:result[i]._id})
                ctx.service.olt.getOltSpeedProfile({OltId:result[i]._id})
                ctx.service.olt.getRegisteredONUList({OltId:result[i]._id,tid:result[i].tid})
                ctx.service.olt.getUnregisteredONUList({OltId:result[i]._id})
                console.timeEnd('haha2')
            }
       }
     },
   };
 
 };
 